Python时间序列分析

您所在的位置:网站首页 python arima定阶 Python时间序列分析

Python时间序列分析

2024-07-12 14:52| 来源: 网络整理| 查看: 265

本文将介绍使用Python来完成时间序列分析ARIMA模型的完整步骤与流程,绘制时序图,平稳性检验,单位根检验,白噪声检验,模型定阶,模型有啊,参数估计,模型检验等完整步骤。Python建立时间序列分析–ARIMA模型实战案例

在这里插入图片描述在这里插入图片描述文章目录时间序列分析概念建立模型基本步骤ARIMA模型建模实战导入模块加载数据平稳性检验时序图单位根检验白噪声检验模型定阶模型优化参数估计模型检验参数的显著性检验模型的显著性检验模型预测时间序列分析概念在这里插入图片描述在这里插入图片描述

时间序列分析 是统计学中的一个非常重要的分支,是以概率论与数理统计为基础、计算机应用为技术支撑,迅速发展起来的一种应用性很强的科学方法。时间序列是变量按时间间隔的顺序而下形成的随机变量序列,大量自然界、社会经济等领域的统计指标都依年、季、月或日统计其指标值,随着时间的推移,形成了统计指标的时间序列,例如,股价指数、物价指数、GDP和产品销售量等等都属于时间序列。 原文链接:https://blog.csdn.net/qq_45176548/article/details/111504846

建立模型基本步骤在这里插入图片描述在这里插入图片描述ARIMA模型建模实战导入模块小白可以参考我哦代码语言:javascript复制import sys import os import warnings warnings.filterwarnings("ignore") import pandas as pd import numpy as np from arch.unitroot import ADF import matplotlib.pylab as plt %matplotlib inline from matplotlib.pylab import style style.use('ggplot') import statsmodels.api as sm import statsmodels.formula.api as smf import statsmodels.tsa.api as smt from statsmodels.tsa.stattools import adfuller from statsmodels.stats.diagnostic import acorr_ljungbox from statsmodels.graphics.api import qqplot pd.set_option('display.float_format', lambda x: '%.5f' % x) np.set_printoptions(precision=5, suppress=True) """中文显示问题""" plt.rcParams['font.family'] = ['sans-serif'] plt.rcParams['font.sans-serif'] = ['SimHei']加载数据代码语言:javascript复制data = pd.read_excel("data.xlsx",index_col="年份",parse_dates=True) data.head()

xt

年份

1952-01-01

100.00000

1953-01-01

101.60000

1954-01-01

103.30000

1955-01-01

111.50000

1956-01-01

116.50000

平稳性检验时序图代码语言:javascript复制data["diff1"] = data["xt"].diff(1).dropna() data["diff2"] = data["diff1"].diff(1).dropna() data1 = data.loc[:,["xt","diff1","diff2"]] data1.plot(subplots=True, figsize=(18, 12),title="差分图")在这里插入图片描述在这里插入图片描述

时序图检验 - - 全靠肉眼的判断和判断人的经验,不同的人看到同样的图形,很可能会给出不同的判断。因此我们需要一个更有说服力、更加客观的统计方法来帮助我们检验时间序列的平稳性,这种方法,就是单位根检验。 原文链接:https://blog.csdn.net/qq_45176548/article/details/111504846

单位根检验代码语言:javascript复制print("单位根检验:\n") print(ADF(data.diff1.dropna())) 代码语言:javascript复制单位根检验: Augmented Dickey-Fuller Results ===================================== Test Statistic -3.156 P-value 0.023 Lags 0 ------------------------------------- Trend: Constant Critical Values: -3.63 (1%), -2.95 (5%), -2.61 (10%) Null Hypothesis: The process contains a unit root. Alternative Hypothesis: The process is weakly stationary.

单位根检验:对其一阶差分进行单位根检验,得到:1%、%5、%10不同程度拒绝原假设的统计值和ADF Test result的比较,本数据中,P-value 为 0.023,接近0,ADF Test result同时小于5%、10%即说明很好地拒绝该假设,本数据中,ADF结果为-3.156,拒绝原假设,即一阶差分后数据是平稳的。

白噪声检验

判断序列是否为非白噪声序列

代码语言:javascript复制from statsmodels.stats.diagnostic import acorr_ljungbox acorr_ljungbox(data.diff1.dropna(), lags = [i for i in range(1,12)],boxpierce=True)代码语言:javascript复制(array([11.30402, 13.03896, 13.37637, 14.24184, 14.6937 , 15.33042, 16.36099, 16.76433, 18.15565, 18.16275, 18.21663]), array([0.00077, 0.00147, 0.00389, 0.00656, 0.01175, 0.01784, 0.02202, 0.03266, 0.03341, 0.05228, 0.07669]), array([10.4116 , 11.96391, 12.25693, 12.98574, 13.35437, 13.85704, 14.64353, 14.94072, 15.92929, 15.93415, 15.9696 ]), array([0.00125, 0.00252, 0.00655, 0.01135, 0.02027, 0.03127, 0.04085, 0.06031, 0.06837, 0.10153, 0.14226]))

通过P|z| [0.025 0.975] ------------------------------------------------------------------------------ const 4.9956 2.014 2.481 0.013 1.048 8.943 ma.L1.D.xt 0.6710 0.165 4.071 0.000 0.348 0.994 Roots ============================================================================= Real Imaginary Modulus Frequency ----------------------------------------------------------------------------- MA.1 -1.4902 +0.0000j 1.4902 0.5000 -----------------------------------------------------------------------------模型检验在这里插入图片描述在这里插入图片描述参数的显著性检验参数检验参数检验在这里插入图片描述在这里插入图片描述

P



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3